﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;


namespace WpfApp4
{

    public partial class Suspension_Keyboard : Window
    {
        public TextBox CurrentTextBox { get; set; }
        //当某个 TextBox 获得焦点时，CurrentTextBox 会记录下这个 TextBox 的引用。如此一来，后续悬浮键盘的输入操作就会直接作用于这个特定的 TextBox。
        public Suspension_Keyboard()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {                 //将sender强制类型转换为Button，以便获取按钮的内容（Content）
            var button = (Button)sender;//同理当某个按钮按下触发方法，被button记录引用，就能够获取和操作button
            var content = button.Content.ToString();
            if (CurrentTextBox != null)
            {
                switch (content)
                {
                    case "退格":
                        if (CurrentTextBox.Text.Length > 0)//获得TEXEbox的引用后通过键盘和textbox操作完成退格归零累加功能
                        {
                            CurrentTextBox.Text = CurrentTextBox.Text.Substring(0, CurrentTextBox.Text.Length - 1);
                           
                        }
                        break;
                    case "归零":
                        CurrentTextBox.Text = "";
                        break;
                    default:
                        CurrentTextBox.Text += content;
                        break;
                }
                //var viewModel = (MainViewModel)DataContext;//通过DataContext获取当前窗口绑定的MainViewModel实例，该实例负责管理文本框的文本数据
               // viewModel.SelectedTextBoxText += button.Content.ToString();
                //将按钮的Content（如数字 "1"、"2"）转换为字符串，并拼接到ViewModel的SelectedTextBoxText属性中。
                //由于SelectedTextBoxText实现了INotifyPropertyChanged接口，文本的变更会自动同步到主窗口的文本框中。


            }
            //sender：指的是触发此事件的对象，在这里就是被点击的按钮。
        }
    }
}